nAG Fortran コンパイラ 7.1 マニュアル

 
ナビゲーション:前へ   上へ   次へ

9.1 Fortran 2003概要

マニュアルのこの部ではFortran 95には含まれていないFortran 2003言語仕様に ついて解説し、そのうちどの機能が現在nAG Fortranコンパイラによってサポート されているかを記述します。

セクション見出し部で‘[5.3.1]’と表示されている機能はリリース5.3.1で新たにサポートされたもの、 ‘[5.3]’と表示されている機能はリリース5.3で新たにサポートされたもの、 ‘[5.2]’と表示されている機能はリリース5.2でサポートされたもの、 ‘[5.1]’と表示されている機能はリリース5.1でサポートされたもの (中にはそれ以前から利用できていたものもあります)を示しています。 ‘[n/a]’と表示されている機能についてはまだサポートされていません。

Fortran 2003 はFortran 95から大きな進化を遂げています。Fortran 2003の新機能は以下のようにグループ分けされます:

  • オブジェクト指向プログラミング機能
  • 割付け属性の拡張
  • 他のデータ指向に関する機能強化
  • Cとの相互運用性
  • IEEE算術のサポート
  • 入出力の機能強化
  • その他の機能強化

基本的なオブジェクト指向機能は型拡張、多相変数、型選択です。 これらは継承と、型に関する安全性を保った形で多相性をプログラムできる機能とを 提供します。 高度な機能には型割付け、クローン作成、型結合手続き、型結合総称、オブジェクト 結合手続きがあります。 型結合手続きは動的呼出しの方法を提供します。

ALLOCATABLE属性は、仮引数、関数結果、構造体成分、そして(配列のみでは なく)スカラでも利用できるように拡張されました。 また、割付けを1つの変数から別の変数へ移動するための組込み手続きが追加されま した。 最後に組込み代入において、割付け変数もしくは成分が、形状もしくは型パラメタ 値が式と異なる場合に、自動的に正しいサイズで再割付けされるようになりました。 この最後の機能と無指定文字長により、真の可変長文字変数が扱えるようになります。

その他にデータに関する2つの大きな機能強化があります。構造型への型パラメタ の追加と(最終サブルーチンによる)最終化です。 その他のデータに関する強化にはPROTECTED属性、ポインタ結合指示と次元 再割当、手続きポインタ、構造体成分に対する個別の参照許可設定があります。

C言語との相互運用性には、FortranからのC手続きの呼び出し、CからのFortran手続 きの呼び出し、そしてCとFortranとの間でのグローバル変数の共有があります。 これはCとFortranとの間で機能が同等である場合に可能です。 FortranとCとの間での型マッピングを支援する構造型と名前付き定数が組込みモジュ ールによって提供されます。また、Cと共有できるFortran要素を宣言するための BIND(C)構文が追加されています。 更にCスタイルの列挙も追加されています。

IEEE算術のサポートは3つの組込みモジュールにより提供されます。 IEEE_FEATURESモジュールの使用により、特定のFortran機能に対してIEEE 準拠を要求することができます。 IEEE_EXCEPTIONSモジュールはIEEEモードと例外処理へのアクセス機能を提 供します。 IEEE_ARITHMETICモジュールはIEEE適合度を調べるためとIEEE準拠の機能を アクセスするための関数を提供します。

入出力には3つの大きな機能が加わりました。非同期入出力、ストリーム入出力、 構造型入出力のためのユーザ定義手続き(ユーザ定義入出力と呼びます)の3つです。 更に入出力指定子の統一化が行われました。意味を持つ場合、OPEN文で利用 できる指定子はすべてREAD文もしくはWRITE文でも使えるようになり ました。また逆も同様です。 新たに追加されたIOMSG=指定子を使って入出力エラーメッセージを取得でき るようになり、プロセッサ依存の入出力定数(例:標準入力ファイルの装置番号) は新しい組込みモジュールによって提供されるようになりました。

最後に言語の多方面にわたって多数の機能改良が施されました。 その中で主要なものには、引用仕様宣言への親子結合を行うIMPORT文、 VALUE属性とVOLATILE属性、定数式においてすべての組込み関数を使 用できる機能、配列構成子と構造体構成子に対する構文拡張があります。

© 譌・譛ャ繝九Η繝シ繝。繝ェ繧ォ繝ォ繧「繝ォ繧エ繝ェ繧コ繝�繧コ繧ー繝ォ繝シ繝玲�ェ蠑丈シ夂、セ 2025
Privacy Policy  /  Trademarks